查看原文
其他

CIIS演讲实录丨朱小燕:对话系统中的NLP

2017-10-27 中国人工智能学会

10月12-13日,第七届中国智能产业高峰论坛在佛山开幕,在NLP与服务机器人专题论坛上,智能技术与系统国家重点实验室主任朱小燕发表了主题为《对话系统中的NLP》的精彩演讲。


以下是朱小燕老师的演讲实录:   


朱小燕:谢谢大家,非常感谢有机会跟大家讨论NLP与服务机器人的关系,我理解的服务机器人还是软件BOTs,这是我的理解。我的报告过程中主要是讨论这个问题,我在沙龙那边也有十分钟的内容,我就把一些自己的想法在那边谈,在我们这个技术论坛上,我主要题目是对话系统中的NLP。我在沙龙中听到一些NLP老师的报告,我说以后再也不敢说我是做NLP,就说我不是做NLP,这是说我们的系统中用到了哪些NLP的东西,因为我们做对话系统,做系统也有十多年,所以我们还是有一些体会和结果的。


BOTs现在挺火的,毕竟是人工智能可以落地很重要的一个角色,人工智能很多问题可以表现在对话、交互过程中。所以学术界都非常重视,也特别火,从企业来说叫红海了。对话实际上有一个发展过程,如果说是问答的话,从问答、对话到交互,中间有一些互相包含,但是还是有一个发展过程的。问答就是一问一答,对话有上下文逻辑,这就是我们常说的对话。还有交互,现在有一个词叫交互智能,已经提到这个层面了。跟对话有什么不一样?就是融合了各种各样上下文或者环境信息,在输出那一段更扩展一些,但是输出应该是做出决策和推荐。我们研究小组这方面的研究做了十余年了。


Key Lssues in Dialogue Systems,现在从研究角度来说,成果最不明显或者最薄弱,或者说不能用深度学习很好实现的环节是对话管理。问题比较突出、明显的,或者说深度学习等新的技术提现还仅仅是在论文中,离实际应用还有很大的研究空间。下面的语言生成部分的研究成果表现还是很突出的。还有就是End-2-end的Dialogue System,有一些场景用得非常好,有一些场景就不尽人意了,其实这是人工智能的一个系统,也特别突出的体现了人工智能系统的一个特点。今天我们不讨论这个问题,仅仅讨论技术本身。其实你说这个技术有没有瑕疵?比如说对话系统、语音识别系统,有没有瑕疵呢?有,这个瑕疵什么时候都有,如果我们定义只有100%对的时候才是完美的话,什么时候都有瑕疵,我们做实验谁敢说自己是100%的,肯定不敢说100%,99.99%后面还要留0.01%。其实这个瑕疵是人能不能容忍的,或者能不能真正带着这个瑕疵完成任务,满足需求,适应环境,得到最后想要的结果。这个算法在什么地方合适,用的时候自己要掂量掂量,不是什么时候都好用,最重要的看能不能把它用好。


从架构来说,这张图虽然有些粗糙,但是很全,把几个部位都点出来了,一个输入、一个输出,中间一个对话管理,底下就是Knowledge支撑。知识一定要有否则这个系统是不完整的。从算法上说,我已经列进去了,如果在座感兴趣的话,一看这些名词就知道怎么回事了,时间有限我就不多讲了,上面有一个End to End,从Input到Output,这也挺好使的。做完对话逻辑后,再到Output,中间很多算法都能实现,其实算法是为了实现目标的。


NLP无处不在。什么叫NLP,我们不讨论定义,有说不清的地方,但是我觉得NLP无处不在。不管输入用语音还是键盘甚至图像,但是最后处理还是以文字或者说知识表示的代码或者编码,还是跟NLP相关的。分开来说,就是前端、后端、对话管理和知识管理。就是这四部分,我把每一部分大概讲述一下,前端是最重要的,因为如果要对用户的输入不知所云,后边就不用想了。所以前端非常重要,从处理的内容角度来说,输入语义分析、输入语义分类,还有相似度度量,各种计算,关键词抽取、分词、浅层语法分析、深层语法分析,从构建一个应用级、企业级、产品级架构时会这么想,但是研究的时候会有另外一个角度,会从方法上考虑,就变成传统方法和机器深度学习方法,企业也特别清楚,就是这两种。


传统方法(Semantic parser),我举一个例子,做语义分析,有一个五道口,全聚德,可以分析得很好,如果没有语音识别错误的话。但是问题是怎么设计构建规则库。很多人很烦这件事情,真的想做一个产品的话,如果产品不是非常复杂的东西,其实是一次性的,要用这个来说这个东西不好,其实没有什么道理,如果希望减轻内部开发成本,希望做一次其他各个领域也都能做,那就是另外一回事。但是这个东西,有一些自动生成的方法,肯定有,但是自动生成的方法拿过来就用,是不是还得要检查一下。我们十多年前就做了规则自动生成的工作,一下生成十几个,到上万个。但是一定要有评价体系,要进行筛选和评估,上万个到二十几个时候,总体性能不下降,那么二十几个可以代表一万多的。所以规则自动生成可以,关键是怎么评价、筛选。还有就是在使用过程中是否能够自动,半自动更新?这些东西怎么融入知识,跟知识关联起来,怎么表示出来? 


深度学习的方法(见PPT),这是典型的深度学习框架图。左边是问题,问题的一些东西可以映射到右边的框,实质上是一个比较,相似度度量,怎么度量都可以,度量方面几十种。如果把这个实现了,基于嵌入式学习,可以替代刚才的工作。这里面肯定也有它的一些问题,因为深度学习的研究,现在做研究的人,要比传统的研究多得多,所以问题大家都挺清楚的。我就不多说了。


输入意图理解,它有一个基本模型,深度学习end to end,从输入一下跨到输出。我认为从任务分类的角度来说,这是一个问题相似度度量问题,从应用角度来说,不同的问题可以有不同的解释,如果从应用角度来说,比较擅长处理FAQ类任务,更像检索模型,进来一个东西,选择最相近的问题及其对应的答案。所以我觉得像检索模型。从基本模型来说,就是序列对比。这么拆分后,这件事其实就是一个计算过程,用什么模型都行,只要能把它算出来就可以了。训练的时候,数据的内容要转化为一个模型。这是现在的主流,需要大规模的训练数据,大规模到底是多少,也没有一个定数,如果几千,到几百万,几千万。具体任务具体分析。如果做聊天机器人,几千万也不是什么大数,如果只有几千个就挺难的。应用的时候,把输入通过模型转化后,跟已有数据进行比较,还是度量,把答案引过来,这是最基本的做法,可能大家还有很多变革。这个是否好使?很多情况下好使,但是问题也很明显,我觉得做过或者用过的人就很清楚,知识怎么加进去?就是说现在从产业的角度来说,很多平台会说我们可以做POC,你拿过去用,测试结果通过后,可以上线,用我的云服务。至少有一批应该是这种类型。我个人认为这样的问题处理过程,从信息处理的角度,仅仅是是“听见”的程度。进一步“听明白了”,再进一步“知道该要干什么了”,单用这种类型很困难,因为张三家的数据给李四家用,新用户的个人信息怎么加进去?还要好好想想。


还有一个问题,我们也做了很多研究,但是没有做到实用系统上。我叫做增量学习,或者叫其他什么学习也行。用户的产品信息变了的时候,怎么把新的数据放进去,现在有一种流行的方法叫“喂数据”。真正做过实用系统的,这种方法真的可行吗?


这是我们的一个工作,做意图理解的时候,不光计算问题的内容,还要同时计算答案的内容,做交叉计算,结果会稍微好一点。后端的语言生成,我认为目前的成果已经挺好的了。生成也可以分为两种,一个是特定领域对话输出生成,二个聊天机器人对话输出生成。如果我们不是end  to end,可以分析出来对话到哪一个状态,相对应哪一个值,可以生成一个比较好的结果。现在生成模型做得还是比较好的,说的都是人话基本没有语法问题,可以接受。比如说多样性等等,也能做得比较好。


聊天机器人,目前应该是没有人用规则的方法做语言生成了。假如你有那么多数据,可以去做聊天尝试。我们也弄到900万数据,做了一些尝试性的研究,希望在聊天人格化,情绪表达等方面做一些工作。


对话管理,传统方法挺多的,大家可能觉得有一点蠢,但是其实挺好用的。系统学习的方法,就讲这一张图,这是一个模型,就是说需要各种Memory,上文中说各种各样的话,哪一些地方值得注意等等进行记载,然后加入到后续的计算。其实基本概念就是说把以往的上下文,看做历史,然后不停往里面加,才能把对话持续下来。


知识管理,知识表示,现在非常受重视,人工智能做知识表示特别多,论文也很多,我们系里头也有几个团队在做,做了很多,各种方法都有,从论文的角度来说,还是很不错的论文。


结论与问题,结论,NLP在BOTs系统中的绝对重要地位不可置疑。现在越来越多的不是针对NLP某一个技术,比如说分词、词形标注,整个处理单元越来越大,比如说一句话、一个段落,一个篇章。整个篇章就把它“喂”进去,后面就一个输出,所以NLP在里面到底起什么作用?整个计算还是在计算语言学范围内进行各种各样的讨论,不过按现在的模型,离真正的内容理解越来越远了。只是说反复出现后就记下了,其实不理解这句话到底说什么。但是越来越远,是不是人所希望的智能,就是可解释性的人工智能,我们希望它能解释,但是现阶段在企业使用,是不是差不多也行,只要输出不胡说八道就可以了。有一个老板说,我不怕它智障,我怕它抽风。所以我觉得NLP发展,里面的技术怎么拿来用,还要跟我们的目标、任务紧密关系在一起。

NLP深度学习其实还行,输入相似度的问答(客服)也有一些系统。问题是如何能力真正打通用户交互信息与领域知识的通道?我听过一些企业的说法,完全打不通。用户信息是加不进来的,还有知识向量表示研究成果如何提升到实用阶段?知识向量表示后,真正能用吗?现在还远不能用。


谢谢大家!


CAAI原创 丨 作者朱小燕

未经授权严禁转载及翻译

如需转载合作请向学会或本人申请

转发请注明转自中国人工智能学会



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存